USE SERVICIOS
GO
--SP_HELPTEXT [SER_S_Formulario_Listado]
--SP_HELPTEXT [SER_I_Formulario]
--SP_HELPTEXT [SER_U_Formulario]
--SP_HELPTEXT [SER_I_DetalleFormulario]
--SP_HELPTEXT [SER_D_DetalleFormulario]
GO
IF OBJECT_ID(N'dbo.[SER_I_Formulario]',N'P') IS NOT NULL
   DROP PROCEDURE [SER_I_Formulario];
GO
IF OBJECT_ID(N'dbo.[SER_U_Formulario]',N'P') IS NOT NULL
   DROP PROCEDURE [SER_U_Formulario];
GO
IF OBJECT_ID(N'dbo.[SER_I_DetalleFormulario]',N'P') IS NOT NULL
   DROP PROCEDURE [SER_I_DetalleFormulario];
GO
IF OBJECT_ID(N'dbo.[SER_D_DetalleFormulario]',N'P') IS NOT NULL
   DROP PROCEDURE [SER_D_DetalleFormulario];
GO
IF OBJECT_ID(N'dbo.[SER_S_Formulario_Listado]',N'P') IS NOT NULL
   DROP PROCEDURE [SER_S_Formulario_Listado];
GO
/**********************************************************
SERVICIOS
	Creado por : RGD
	Modificado por : NA
	Fechas		: 25/02/2011 - SP Inicial
	Objetivo   	: Insertar formularios de encuestas
***********************************************************/
CREATE PROCEDURE [SER_I_Formulario]
       @Co_Encuesta INT,
       @Co_Servicio INT
AS 
BEGIN
SET NOCOUNT ON

	INSERT INTO [T_SER_ESI_Formulario] ([Co_Encuesta], [Co_Servicio], [Fe_Fecha])
	VALUES ( @Co_Encuesta, @Co_Servicio, GETDATE() )

	SELECT @@IDENTITY AS CO_FORMULARIO

SET NOCOUNT OFF
END
GO
/**********************************************************
SERVICIOS
	Creado por : RGD
	Modificado por : NA
	Fechas		: 25/02/2011 - SP Inicial
	Objetivo   	: Modificar formularios de encuestas
***********************************************************/
CREATE PROCEDURE [SER_U_Formulario]
    @CO_FORMULARIO INT
AS 
BEGIN
SET NOCOUNT ON

	UPDATE [T_SER_ESI_Formulario] 
		SET [Fe_Fecha] = GETDATE()
	WHERE CO_FORMULARIO = @CO_FORMULARIO

SET NOCOUNT OFF
END
GO
/**********************************************************
SERVICIOS
	Creado por : RGD
	Modificado por : NA
	Fechas		: 25/02/2011 - SP Inicial
	Objetivo   	: Insertar detalles formularios de encuestas
***********************************************************/
CREATE PROCEDURE [SER_I_DetalleFormulario]
    @CO_FORMULARIO INT,
	@CO_ENCUESTA INT,
	@CO_SECCION INT,
	@CO_PREGUNTA INT,
	@CO_ALTERNATIVA INT
AS 
BEGIN
SET NOCOUNT ON

	INSERT INTO [T_SER_ESI_DetalleFormulario] ([CO_FORMULARIO], [CO_ENCUESTA], [CO_SECCION], [CO_PREGUNTA], [CO_ALTERNATIVA])
	VALUES ( @CO_FORMULARIO, @CO_ENCUESTA, @CO_SECCION, @CO_PREGUNTA, @CO_ALTERNATIVA )

SET NOCOUNT OFF
END
GO
/**********************************************************
SERVICIOS
	Creado por : RGD
	Modificado por : NA
	Fechas		: 25/02/2011 - SP Inicial
	Objetivo   	: Eliminar detalles formularios de encuestas
***********************************************************/
CREATE PROCEDURE [SER_D_DetalleFormulario]
    @CO_FORMULARIO INT
AS 
BEGIN
SET NOCOUNT ON

	DELETE FROM T_SER_ESI_DetalleFormulario WHERE CO_FORMULARIO=@CO_FORMULARIO

SET NOCOUNT OFF
END
GO
/**********************************************************
SERVICIOS
	Creado por : RGD
	Modificado por : NA
	Fechas		: 25/02/2011 - SP Inicial
	Objetivo   	: Listar formularios de encuestas para grilla
***********************************************************/
CREATE PROCEDURE [SER_S_Formulario_Listado]
       @CO_SERVICIO INT,
       @NO_TITULO VARCHAR(150)
AS
BEGIN
SET NOCOUNT ON

	SELECT	FRM.CO_FORMULARIO AS CODIGO,
			CONVERT(VARCHAR(10),FRM.FE_FECHA,103) AS FECHA,
			ENC.NO_TITULO AS ENCUESTA,
			UPPER(SER.TX_DESCRIPCION) AS SERVICIO,
			COUNT(DET.CO_PREGUNTA) AS PREGUNTAS
	FROM [T_SER_ESI_Formulario] FRM WITH(NOLOCK)
	INNER JOIN [T_SER_ESI_Encuesta] ENC WITH(NOLOCK) ON FRM.CO_ENCUESTA=ENC.CO_ENCUESTA
	INNER JOIN [T_SER_ESI_Servicio] SER WITH(NOLOCK) ON FRM.CO_SERVICIO=SER.CO_SERVICIO
	INNER JOIN [T_SER_ESI_DetalleFormulario] DET WITH(NOLOCK) ON FRM.CO_FORMULARIO=DET.CO_FORMULARIO
	WHERE	ENC.NO_TITULO LIKE @NO_TITULO + '%' AND
			SER.CO_SERVICIO = CASE WHEN @CO_SERVICIO = 0 THEN SER.CO_SERVICIO ELSE @CO_SERVICIO END
	GROUP BY FRM.CO_FORMULARIO,
			FRM.FE_FECHA,
			ENC.NO_TITULO,
			SER.TX_DESCRIPCION

SET NOCOUNT OFF
END
